package lesson02;

/**
 * 演示线程的状态
 *
 * @author wileda
 * @date 2023/01/05  10:19
 */
public class Demo08 {
    public static void main(String[] args) throws InterruptedException {
        Thread thread = new Thread(() -> {
//            for (long i = 0; i < 10000000000l; i++) {
//                // 啥都不干
//            }
            for (int i = 0; i < 5; i++) {
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }

        });
        // 查看线程创建好，但没启动时的状态 NEW
        System.out.println("启动之前：" + thread.getState());
        // 启动线程
        thread.start();
        // 查看一下启动之后，创建好PCB之后的状态 RUNNABLE
        Thread.sleep(1000);
        System.out.println("启动线程，创建好PCB之后：" + thread.getState());
        // 等待线程执行完成
        thread.join();
        // 线程执行完成之后 TERMINATED
        System.out.println("线程执行完成之后：" + thread.getState());
    }
}
